// 排列五数据结构定义
interface P5Record {
  issue: string;
  date: string;
  numbers: number[];
  sales?: number;
  directBetCount?: number;
  directBetPrize?: number;
  bonus?: number;
}

/**
 * 解析排列五数据
 * @param data 原始数据字符串
 * @returns 解析后的排列五数据数组
 */
export function parseP5Data(data: string): P5Record[] {
  const records: P5Record[] = [];
  const lines = data.split('\n');

  for (const line of lines) {
    if (!line.trim()) continue;

    const parts = line.split(' ').filter(part => part !== '');
    if (parts.length < 7) continue; // 确保有足够的字段

    const issue = parts[0];
    const date = parts[1];
    // 提取号码 (第2到第6个字段)
    const numbers = parts.slice(2, 7).map(num => parseInt(num, 10));
    // 提取销售额 (第7个字段)
    const sales = parts.length > 7 ? parseInt(parts[7], 10) : undefined;
    // 提取注数 (第8个字段)
    const directBetCount = parts.length > 8 ? parseInt(parts[8], 10) : undefined;
    // 提取单注奖金 (第9个字段)
    const directBetPrize = parts.length > 9 ? parseInt(parts[9], 10) : undefined;
    // 提取特别号码 (第10个字段，如果有)
    const bonus = parts.length > 10 ? parseInt(parts[10], 10) : undefined;

    records.push({
      issue,
      date,
      numbers,
      sales,
      directBetCount,
      directBetPrize,
      bonus
    });
  }

  return records;
}

/**
 * 加载并解析排列五数据
 * @returns 解析后的排列五数据数组
 */
export async function loadP5Data(): Promise<P5Record[]> {
  try {
    // 导入排列五数据文件
    const module = await import('./p5Data.ts');
    // 假设p5Data.ts导出了一个默认的字符串变量
    const data = module.default || '';
    return parseP5Data(data);
  } catch (error) {
    console.error('加载排列五数据失败:', error);
    return [];
  }
}

export type { P5Record };